package com.example.demo7;

import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;

// 子弹类
public class Projectile {
    double x, y;        // 子弹坐标
    double dx, dy;      // 子弹移动方向向量
    int damage;        // 子弹伤害
    boolean isEnemyProjectile; // 是否是敌人的子弹
    public static final int PROJECTILE_SIZE = 8;    // 子弹大小

    /**
     * 子弹构造函数
     * @param x 初始X坐标
     * @param y 初始Y坐标
     * @param dx X方向速度
     * @param dy Y方向速度
     * @param damage 伤害值
     * @param isEnemyProjectile 是否是敌人的子弹
     */
    Projectile(double x, double y, double dx, double dy, int damage, boolean isEnemyProjectile) {
        this.x = x;
        this.y = y;
        this.dx = dx;
        this.dy = dy;
        this.damage = damage;
        this.isEnemyProjectile = isEnemyProjectile;
    }

    /**
     * 更新子弹位置
     */
    void update() {
        x += dx;
        y += dy;
    }

    /**
     * 绘制子弹
     * @param gc 图形上下文
     */
    void draw(GraphicsContext gc) {
        // 根据子弹类型设置颜色
        if (isEnemyProjectile) {
            gc.setFill(Color.RED); // 敌人子弹为红色
        } else {
            gc.setFill(Color.YELLOW); // 玩家子弹为黄色
        }
        // 绘制子弹圆形
        gc.fillOval(x - PROJECTILE_SIZE / 2, y - PROJECTILE_SIZE / 2, PROJECTILE_SIZE, PROJECTILE_SIZE);
    }
}
